/**
 * 函数重载应用
 */
/** 消息类型 */
type MessageType = "image" | "audio" | string;

function getMessage(id: number, name: string): MessageType;

function getMessage(msg: MessageType, count: number): undefined;

// 1.函数签名(TS定义的 只有一个实现)
function getMessage(
  msg: any,
  p: any = 1,
): MessageType | undefined {
   //count: number = 1 必须要加这个默认值，因为签名1没有这个参数，函数体中却有，会报错
  console.log(p);// ! 因为name和count 的参数类型不一样 所以写成any
  if (typeof msg === "number") {
    return "audio";
  }
  return undefined;
}

// 2.外部调用只能调用重载签名
const m = getMessage(1, "lily");

// 3.根据传入的参数判断调用的是返回undefined的函数
// 4.参数个数 getMessage(msg: MessageType, count: number)要一致
const und = getMessage("image", 10);
